Package | ch.fhir.ig.ch-epr-data-oe |
Type | StructureMap |
Id | Id |
FHIR Version | R4 |
Source | http://fhir.ch/ig/ch-epr-data-oe/https://build.fhir.org/ig/oliveregger/ch-epr-data-oe/StructureMap-AdaptImmunizationAdministration.html |
Url | http://fhir.ch/ig/ch-epr-data-oe/StructureMap/AdaptImmunizationAdministration |
Version | 1.0.0 |
Status | draft |
Date | 2024-12-27T16:54:09+00:00 |
Name | AdaptImmunizationAdministration |
Experimental | False |
Realm | ch |
Authority | hl7 |
Copyright | CC0-1.0 |
No resources found
No resources found
Note: links and images are rebased to the (stated) source
Generated Narrative: StructureMap AdaptImmunizationAdministration
map "http://fhir.ch/ig/ch-epr-data-oe/StructureMap/AdaptImmunizationAdministration" = "AdaptImmunizationAdministration" uses "http://hl7.org/fhir/StructureDefinition/Bundle" alias Bundle as source uses "http://hl7.org/fhir/StructureDefinition/Bundle" alias BundleTgt as target uses "http://hl7.org/fhir/StructureDefinition/Composition" alias Composition as source uses "http://hl7.org/fhir/StructureDefinition/Composition" alias CompositionTgt as target uses "http://hl7.org/fhir/StructureDefinition/Patient" alias Patient as source uses "http://hl7.org/fhir/StructureDefinition/Patient" alias PatientTgt as target uses "http://hl7.org/fhir/StructureDefinition/PractitionerRole" alias PractitionerRole as source uses "http://hl7.org/fhir/StructureDefinition/PractitionerRole" alias PractitionerRoleTgt as target uses "http://hl7.org/fhir/StructureDefinition/Practitioner" alias Practitioner as source uses "http://hl7.org/fhir/StructureDefinition/Practitioner" alias PractitionerTgt as target uses "http://hl7.org/fhir/StructureDefinition/Organization" alias Organization as source uses "http://hl7.org/fhir/StructureDefinition/Organization" alias OrganizationTgt as target uses "http://hl7.org/fhir/StructureDefinition/Immunization" alias Immunization as source uses "http://hl7.org/fhir/StructureDefinition/Immunization" alias ImmunizationTgt as target uses "http://hl7.org/fhir/StructureDefinition/Resource" alias Resource as source uses "http://hl7.org/fhir/StructureDefinition/Resource" alias ResourceTgt as target group Bundle(source src : Bundle, target tgt : BundleTgt) { src.meta -> tgt.meta as meta, meta.profile = 'http://fhir.ch/ig/ch-vacd/StructureDefinition/ch-vacd-document-immunization-administration|5.0.0'; src.id as src -> tgt.id = src; src.identifier as src -> tgt.identifier = src; src.type as src -> tgt.type = src; src.timestamp as src -> tgt.timestamp = src; src.entry as src where (fullUrl != 'https://www.e-health-suisse.ch/Patient/Patient-author') -> tgt.entry as tgt then Entry(src, tgt); } group Resource(source src : Resource, target tgt : ResourceTgt) { src.id as id -> tgt.id = id; } group Entry(source src, target tgt) { src.fullUrl as fullUrl -> tgt.fullUrl = fullUrl; src.resource : Composition as src -> tgt.resource = create('Composition') as tgt then Composition(src, tgt) "Composition"; // FIXME should work with direct assingement but does not yet src.resource : Composition -> tgt.resource src.resource : Patient as src where (id != 'Patient-author') -> tgt.resource = create('Patient') as tgt then Patient(src, tgt) "Patient"; src.resource : PractitionerRole as src -> tgt.resource = create('PractitionerRole') as tgt then PractitionerRole(src, tgt) "PractitionerRole"; src.resource : Practitioner as src -> tgt.resource = create('Practitioner') as tgt then Practitioner(src, tgt) "Practitioner"; src.resource : Organization as src -> tgt.resource = create('Organization') as tgt then Organization(src, tgt) "Organization"; src.resource : Immunization as src -> tgt.resource = create('Immunization') as tgt then Immunization(src, tgt) "Immunization"; } group Patient(source src : Patient, target tgt : PatientTgt) extends Resource <<types>> { src.identifier as src where ((system != 'urn:oid:2.16.756.5.30.1.127.3.10.3') or value.startsWith('761')) -> tgt.identifier = src; src.identifier as src where ((system = 'urn:oid:2.16.756.5.30.1.127.3.10.3') and (value.startsWith('761').not())) -> tgt.identifier as tgt, tgt.system = 'urn:oid:2.16.756.5.30.1.194.3.0.12.3.101', tgt.value = (%src.value); src.active as src -> tgt.active = src; src.name as src -> tgt.name = src; src.telecom as src -> tgt.telecom = src; // don't consider unknown src.gender as src where ($this != 'unknown') -> tgt.gender = src; src.birthDate as src -> tgt.birthDate = src; } group Composition(source src : Composition, target tgt : CompositionTgt) extends Resource <<types>> { src.language as language -> tgt.language = language; src.identifier as src -> tgt.identifier = src; src.status as src -> tgt.status = src; src.type as src -> tgt.type = src; src.category as src -> tgt.category = src; src.subject as src -> tgt.subject = src; src.date as src -> tgt.date = src; src.author as src -> tgt.author as tgt then { src.reference as src where ($this = 'Patient/Patient-author') -> tgt.reference = 'Patient/Patient-0001'; src.reference as src where ($this != 'Patient/Patient-author') -> tgt.reference = src; }; src.title as src -> tgt.title = src; src.confidentiality as src -> tgt.confidentiality = create('code') as tgt then CodeConf(src, tgt); src.section as src -> tgt.section = src; // add category src where (category.empty()) -> tgt.category = cc('urn:oid:2.16.756.5.30.1.127.3.10.10', 'urn:che:epr:ch-vacd:immunization-administration:2022') "category"; } group CodeConf(source src : code, target tgt : code) { src.extension as src -> tgt.extension = src "organization"; src.value as src -> tgt.value = src "practitioner"; } group PractitionerRole(source src : PractitionerRole, target tgt : PractitionerRoleTgt) extends Resource <<types>> { src.organization as src -> tgt.organization = src; src.practitioner as src -> tgt.practitioner = src; } group Practitioner(source src : Practitioner, target tgt : PractitionerTgt) extends Resource <<types>> { src.identifier as src where (value.value != '7600000000000') -> tgt.identifier = src; src.name as src -> tgt.name = src; src.telecom as src -> tgt.telecom = src; } group Organization(source src : Organization, target tgt : OrganizationTgt) extends Resource <<types>> { src.name as src -> tgt.name = (%src.trim()); } group ImmunizationCodeableConcept(source src : CodeableConcept, target tgt : CodeableConcept) { src.coding as coding where (system != 'http://fhir.ch/ig/ch-vacd/CodeSystem/ch-vacd-myvaccines-cs') -> tgt.coding = coding; src.coding as coding where ((system = 'http://fhir.ch/ig/ch-vacd/CodeSystem/ch-vacd-myvaccines-cs') and 'http://fhir.ch/ig/ch-vacd/CodeSystem/ch-vacd-myvaccines-cs'.resolve().concept.where(code = %coding.code).exists()) -> tgt.coding = coding; src.coding as coding where ((system = 'http://fhir.ch/ig/ch-vacd/CodeSystem/ch-vacd-myvaccines-cs') and 'http://fhir.ch/ig/ch-vacd/CodeSystem/ch-vacd-swissmedic-cs'.resolve().concept.where(code = %coding.code).exists()) -> tgt.coding = create('Coding') as tgtcoding, tgtcoding.system = 'http://fhir.ch/ig/ch-vacd/CodeSystem/ch-vacd-swissmedic-cs', tgtcoding.code = (%coding.code), tgtcoding.display = (%coding.display) "fixwrongcodesystem"; } group Immunization(source src : Immunization, target tgt : ImmunizationTgt) extends Resource <<types>> { src.identifier as src -> tgt.identifier = src; src.status as src -> tgt.status = src; src.vaccineCode as src -> tgt.vaccineCode = create('CodeableConcept') as tgt then ImmunizationCodeableConcept(src, tgt) "protocolApplied"; src.patient as src -> tgt.patient = src; src.occurrence as src -> tgt.occurrence = src "occurrenceDateTime"; src.lotNumber as src -> tgt.lotNumber = src; src.performer as src -> tgt.performer = src; src.protocolApplied as src -> tgt.protocolApplied as tgt then ProtocolApplied(src, tgt); } group ProtocolApplied(source src, target tgt) { src.targetDisease as src -> tgt.targetDisease = create('CodeableConcept') as tgt then TargetDisease(src, tgt); src.doseNumber as src -> tgt.doseNumber = src "doseNumberPositiveInt"; } group TargetDisease(source src : CodeableConcept, target tgt : CodeableConcept) { src.coding as src where (system != 'http://fhir.ch/ig/ch-vacd/ConceptMap-ch-vacd-vaccines-targetdiseases-cm') -> tgt.coding = src; src.coding as src where (system = 'http://fhir.ch/ig/ch-vacd/ConceptMap-ch-vacd-vaccines-targetdiseases-cm') -> tgt.coding as coding, coding.system = 'http://snomed.info/sct', coding.code = (%src.code), coding.display = (%src.display); }
{
"resourceType" : "StructureMap",
"id" : "AdaptImmunizationAdministration",
"text" : {
"status" : "generated",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: StructureMap AdaptImmunizationAdministration</b></p><a name=\"AdaptImmunizationAdministration\"> </a><a name=\"hcAdaptImmunizationAdministration\"> </a><a name=\"AdaptImmunizationAdministration-en-US\"> </a><pre class=\"fml\">\r\n<b>map</b><span style=\"color: navy\"> "</span>http://fhir.ch/ig/ch-epr-data-oe/StructureMap/AdaptImmunizationAdministration<span style=\"color: navy\">" = "</span>AdaptImmunizationAdministration<span style=\"color: navy\">"\r\n\r\n</span><b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/bundle.html\" title=\"Bundle\">http://hl7.org/fhir/StructureDefinition/Bundle</a><span style=\"color: navy\">" </span><b>alias </b>Bundle <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/bundle.html\" title=\"Bundle\">http://hl7.org/fhir/StructureDefinition/Bundle</a><span style=\"color: navy\">" </span><b>alias </b>BundleTgt <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/composition.html\" title=\"Composition\">http://hl7.org/fhir/StructureDefinition/Composition</a><span style=\"color: navy\">" </span><b>alias </b>Composition <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/composition.html\" title=\"Composition\">http://hl7.org/fhir/StructureDefinition/Composition</a><span style=\"color: navy\">" </span><b>alias </b>CompositionTgt <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/patient.html\" title=\"Patient\">http://hl7.org/fhir/StructureDefinition/Patient</a><span style=\"color: navy\">" </span><b>alias </b>Patient <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/patient.html\" title=\"Patient\">http://hl7.org/fhir/StructureDefinition/Patient</a><span style=\"color: navy\">" </span><b>alias </b>PatientTgt <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/practitionerrole.html\" title=\"PractitionerRole\">http://hl7.org/fhir/StructureDefinition/PractitionerRole</a><span style=\"color: navy\">" </span><b>alias </b>PractitionerRole <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/practitionerrole.html\" title=\"PractitionerRole\">http://hl7.org/fhir/StructureDefinition/PractitionerRole</a><span style=\"color: navy\">" </span><b>alias </b>PractitionerRoleTgt <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/practitioner.html\" title=\"Practitioner\">http://hl7.org/fhir/StructureDefinition/Practitioner</a><span style=\"color: navy\">" </span><b>alias </b>Practitioner <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/practitioner.html\" title=\"Practitioner\">http://hl7.org/fhir/StructureDefinition/Practitioner</a><span style=\"color: navy\">" </span><b>alias </b>PractitionerTgt <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/organization.html\" title=\"Organization\">http://hl7.org/fhir/StructureDefinition/Organization</a><span style=\"color: navy\">" </span><b>alias </b>Organization <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/organization.html\" title=\"Organization\">http://hl7.org/fhir/StructureDefinition/Organization</a><span style=\"color: navy\">" </span><b>alias </b>OrganizationTgt <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/immunization.html\" title=\"Immunization\">http://hl7.org/fhir/StructureDefinition/Immunization</a><span style=\"color: navy\">" </span><b>alias </b>Immunization <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/immunization.html\" title=\"Immunization\">http://hl7.org/fhir/StructureDefinition/Immunization</a><span style=\"color: navy\">" </span><b>alias </b>ImmunizationTgt <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/resource.html\" title=\"Resource\">http://hl7.org/fhir/StructureDefinition/Resource</a><span style=\"color: navy\">" </span><b>alias </b>Resource <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/resource.html\" title=\"Resource\">http://hl7.org/fhir/StructureDefinition/Resource</a><span style=\"color: navy\">" </span><b>alias </b>ResourceTgt <b>as </b><b>target</b>\r\n\r\n<b>group </b>Bundle<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>Bundle, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\"> : </span>BundleTgt<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> src.meta<span style=\"color: navy\"><b> -> </b></span> tgt.meta<b> as </b><span style=\"color: maroon\">meta</span><span style=\"color: navy\">, </span> meta.profile = <span style=\"color: blue\">'http://fhir.ch/ig/ch-vacd/StructureDefinition/ch-vacd-document-immunization-administration|5.0.0'</span><span style=\"color: navy\">;</span>\r\n src.id<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.id = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.identifier<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.identifier = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.type<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.type = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.timestamp<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.timestamp = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.entry<b> as </b><span style=\"color: maroon\">src</span><b> where </b>(fullUrl != 'https://www.e-health-suisse.ch/Patient/Patient-author')<span style=\"color: navy\"><b> -> </b></span>tgt.entry<b> as </b><span style=\"color: maroon\">tgt</span><b> then </b>Entry<span style=\"color: navy\">(</span><span style=\"color: maroon\">src</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgt</span><span style=\"color: navy\">)</span><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>Resource<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>Resource, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\"> : </span>ResourceTgt<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> src.id<b> as </b><span style=\"color: maroon\">id</span><span style=\"color: navy\"><b> -> </b></span>tgt.id = <span style=\"color: maroon\">id</span><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>Entry<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span>, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> src.fullUrl<b> as </b><span style=\"color: maroon\">fullUrl</span><span style=\"color: navy\"><b> -> </b></span>tgt.fullUrl = <span style=\"color: maroon\">fullUrl</span><span style=\"color: navy\">;</span>\r\n src.resource<span style=\"color: navy\"> : </span>Composition<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Composition'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">tgt</span><b> then </b>Composition<span style=\"color: navy\">(</span><span style=\"color: maroon\">src</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgt</span><span style=\"color: navy\">)</span> <i>"Composition"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">FIXME should work with direct assingement but does not yet src.resource : Composition -> tgt.resource</span>\r\n src.resource<span style=\"color: navy\"> : </span>Patient<b> as </b><span style=\"color: maroon\">src</span><b> where </b>(id != 'Patient-author')<span style=\"color: navy\"><b> -> </b></span>tgt.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Patient'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">tgt</span><b> then </b>Patient<span style=\"color: navy\">(</span><span style=\"color: maroon\">src</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgt</span><span style=\"color: navy\">)</span> <i>"Patient"</i><span style=\"color: navy\">;</span>\r\n src.resource<span style=\"color: navy\"> : </span>PractitionerRole<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'PractitionerRole'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">tgt</span><b> then </b>PractitionerRole<span style=\"color: navy\">(</span><span style=\"color: maroon\">src</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgt</span><span style=\"color: navy\">)</span> <i>"PractitionerRole"</i><span style=\"color: navy\">;</span>\r\n src.resource<span style=\"color: navy\"> : </span>Practitioner<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Practitioner'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">tgt</span><b> then </b>Practitioner<span style=\"color: navy\">(</span><span style=\"color: maroon\">src</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgt</span><span style=\"color: navy\">)</span> <i>"Practitioner"</i><span style=\"color: navy\">;</span>\r\n src.resource<span style=\"color: navy\"> : </span>Organization<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Organization'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">tgt</span><b> then </b>Organization<span style=\"color: navy\">(</span><span style=\"color: maroon\">src</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgt</span><span style=\"color: navy\">)</span> <i>"Organization"</i><span style=\"color: navy\">;</span>\r\n src.resource<span style=\"color: navy\"> : </span>Immunization<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Immunization'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">tgt</span><b> then </b>Immunization<span style=\"color: navy\">(</span><span style=\"color: maroon\">src</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgt</span><span style=\"color: navy\">)</span> <i>"Immunization"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>Patient<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>Patient, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\"> : </span>PatientTgt<span style=\"color: navy\">)</span><b> extends </b>Resource<b> <<types>></b><span style=\"color: navy\"> {\r\n</span> src.identifier<b> as </b><span style=\"color: maroon\">src</span><b> where </b>((system != 'urn:oid:2.16.756.5.30.1.127.3.10.3') or value.startsWith('761'))<span style=\"color: navy\"><b> -> </b></span>tgt.identifier = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.identifier<b> as </b><span style=\"color: maroon\">src</span><b> where </b>((system = 'urn:oid:2.16.756.5.30.1.127.3.10.3') and (value.startsWith('761').not()))<span style=\"color: navy\"><b> -> </b></span> tgt.identifier<b> as </b><span style=\"color: maroon\">tgt</span><span style=\"color: navy\">, </span> tgt.system = <span style=\"color: blue\">'urn:oid:2.16.756.5.30.1.194.3.0.12.3.101'</span><span style=\"color: navy\">, </span> tgt.value = <span style=\"color: navy\">(</span>%src.value<span style=\"color: navy\">)</span><span style=\"color: navy\">;</span>\r\n src.active<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.active = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.name<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.name = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.telecom<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.telecom = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">don't consider unknown</span>\r\n src.gender<b> as </b><span style=\"color: maroon\">src</span><b> where </b>($this != 'unknown')<span style=\"color: navy\"><b> -> </b></span>tgt.gender = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.birthDate<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.birthDate = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>Composition<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>Composition, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\"> : </span>CompositionTgt<span style=\"color: navy\">)</span><b> extends </b>Resource<b> <<types>></b><span style=\"color: navy\"> {\r\n</span> src.language<b> as </b><span style=\"color: maroon\">language</span><span style=\"color: navy\"><b> -> </b></span>tgt.language = <span style=\"color: maroon\">language</span><span style=\"color: navy\">;</span>\r\n src.identifier<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.identifier = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.status<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.status = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.type<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.type = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.category<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.category = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.subject<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.subject = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.date<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.date = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.author<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.author<b> as </b><span style=\"color: maroon\">tgt</span><b> then</b><span style=\"color: navy\"> {\r\n</span> src.reference<b> as </b><span style=\"color: maroon\">src</span><b> where </b>($this = 'Patient/Patient-author')<span style=\"color: navy\"><b> -> </b></span>tgt.reference = <span style=\"color: blue\">'Patient/Patient-0001'</span><span style=\"color: navy\">;</span>\r\n src.reference<b> as </b><span style=\"color: maroon\">src</span><b> where </b>($this != 'Patient/Patient-author')<span style=\"color: navy\"><b> -> </b></span>tgt.reference = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span><span style=\"color: navy\">;</span>\r\n src.title<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.title = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.confidentiality<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.confidentiality = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'code'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">tgt</span><b> then </b>CodeConf<span style=\"color: navy\">(</span><span style=\"color: maroon\">src</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgt</span><span style=\"color: navy\">)</span><span style=\"color: navy\">;</span>\r\n src.section<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.section = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">add category</span>\r\n src<b> where </b>(category.empty())<span style=\"color: navy\"><b> -> </b></span>tgt.category = <b>cc</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'urn:oid:2.16.756.5.30.1.127.3.10.10'</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'urn:che:epr:ch-vacd:immunization-administration:2022'</span><span style=\"color: navy\">)</span> <i>"category"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>CodeConf<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>code, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\"> : </span>code<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> src.extension<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.extension = <span style=\"color: maroon\">src</span> <i>"organization"</i><span style=\"color: navy\">;</span>\r\n src.value<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.value = <span style=\"color: maroon\">src</span> <i>"practitioner"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>PractitionerRole<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>PractitionerRole, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\"> : </span>PractitionerRoleTgt<span style=\"color: navy\">)</span><b> extends </b>Resource<b> <<types>></b><span style=\"color: navy\"> {\r\n</span> src.organization<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.organization = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.practitioner<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.practitioner = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>Practitioner<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>Practitioner, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\"> : </span>PractitionerTgt<span style=\"color: navy\">)</span><b> extends </b>Resource<b> <<types>></b><span style=\"color: navy\"> {\r\n</span> src.identifier<b> as </b><span style=\"color: maroon\">src</span><b> where </b>(value.value != '7600000000000')<span style=\"color: navy\"><b> -> </b></span>tgt.identifier = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.name<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.name = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.telecom<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.telecom = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>Organization<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>Organization, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\"> : </span>OrganizationTgt<span style=\"color: navy\">)</span><b> extends </b>Resource<b> <<types>></b><span style=\"color: navy\"> {\r\n</span> src.name<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.name = <span style=\"color: navy\">(</span>%src.trim()<span style=\"color: navy\">)</span><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>ImmunizationCodeableConcept<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>CodeableConcept, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\"> : </span>CodeableConcept<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> src.coding<b> as </b><span style=\"color: maroon\">coding</span><b> where </b>(system != 'http://fhir.ch/ig/ch-vacd/CodeSystem/ch-vacd-myvaccines-cs')<span style=\"color: navy\"><b> -> </b></span>tgt.coding = <span style=\"color: maroon\">coding</span><span style=\"color: navy\">;</span>\r\n src.coding<b> as </b><span style=\"color: maroon\">coding</span><b> where </b>((system = 'http://fhir.ch/ig/ch-vacd/CodeSystem/ch-vacd-myvaccines-cs') and 'http://fhir.ch/ig/ch-vacd/CodeSystem/ch-vacd-myvaccines-cs'.resolve().concept.where(code = %coding.code).exists())<span style=\"color: navy\"><b> -> </b></span>tgt.coding = <span style=\"color: maroon\">coding</span><span style=\"color: navy\">;</span>\r\n src.coding<b> as </b><span style=\"color: maroon\">coding</span><b> where </b>((system = 'http://fhir.ch/ig/ch-vacd/CodeSystem/ch-vacd-myvaccines-cs') and 'http://fhir.ch/ig/ch-vacd/CodeSystem/ch-vacd-swissmedic-cs'.resolve().concept.where(code = %coding.code).exists())<span style=\"color: navy\"><b> -> </b></span> tgt.coding = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Coding'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">tgtcoding</span><span style=\"color: navy\">, </span> tgtcoding.system = <span style=\"color: blue\">'http://fhir.ch/ig/ch-vacd/CodeSystem/ch-vacd-swissmedic-cs'</span><span style=\"color: navy\">, </span> tgtcoding.code = <span style=\"color: navy\">(</span>%coding.code<span style=\"color: navy\">)</span><span style=\"color: navy\">, </span> tgtcoding.display = <span style=\"color: navy\">(</span>%coding.display<span style=\"color: navy\">)</span> <i>"fixwrongcodesystem"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>Immunization<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>Immunization, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\"> : </span>ImmunizationTgt<span style=\"color: navy\">)</span><b> extends </b>Resource<b> <<types>></b><span style=\"color: navy\"> {\r\n</span> src.identifier<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.identifier = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.status<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.status = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.vaccineCode<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.vaccineCode = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'CodeableConcept'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">tgt</span><b> then </b>ImmunizationCodeableConcept<span style=\"color: navy\">(</span><span style=\"color: maroon\">src</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgt</span><span style=\"color: navy\">)</span> <i>"protocolApplied"</i><span style=\"color: navy\">;</span>\r\n src.patient<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.patient = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.occurrence<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.occurrence = <span style=\"color: maroon\">src</span> <i>"occurrenceDateTime"</i><span style=\"color: navy\">;</span>\r\n src.lotNumber<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.lotNumber = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.performer<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.performer = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.protocolApplied<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.protocolApplied<b> as </b><span style=\"color: maroon\">tgt</span><b> then </b>ProtocolApplied<span style=\"color: navy\">(</span><span style=\"color: maroon\">src</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgt</span><span style=\"color: navy\">)</span><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>ProtocolApplied<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span>, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> src.targetDisease<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.targetDisease = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'CodeableConcept'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">tgt</span><b> then </b>TargetDisease<span style=\"color: navy\">(</span><span style=\"color: maroon\">src</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">tgt</span><span style=\"color: navy\">)</span><span style=\"color: navy\">;</span>\r\n src.doseNumber<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\"><b> -> </b></span>tgt.doseNumber = <span style=\"color: maroon\">src</span> <i>"doseNumberPositiveInt"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>TargetDisease<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>CodeableConcept, <b>target</b> <span style=\"color: maroon\">tgt</span><span style=\"color: navy\"> : </span>CodeableConcept<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> src.coding<b> as </b><span style=\"color: maroon\">src</span><b> where </b>(system != 'http://fhir.ch/ig/ch-vacd/ConceptMap-ch-vacd-vaccines-targetdiseases-cm')<span style=\"color: navy\"><b> -> </b></span>tgt.coding = <span style=\"color: maroon\">src</span><span style=\"color: navy\">;</span>\r\n src.coding<b> as </b><span style=\"color: maroon\">src</span><b> where </b>(system = 'http://fhir.ch/ig/ch-vacd/ConceptMap-ch-vacd-vaccines-targetdiseases-cm')<span style=\"color: navy\"><b> -> </b></span> tgt.coding<b> as </b><span style=\"color: maroon\">coding</span><span style=\"color: navy\">, </span> coding.system = <span style=\"color: blue\">'http://snomed.info/sct'</span><span style=\"color: navy\">, </span> coding.code = <span style=\"color: navy\">(</span>%src.code<span style=\"color: navy\">)</span><span style=\"color: navy\">, </span> coding.display = <span style=\"color: navy\">(</span>%src.display<span style=\"color: navy\">)</span><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span></pre></div>"
},
"url" : "http://fhir.ch/ig/ch-epr-data-oe/StructureMap/AdaptImmunizationAdministration",
"version" : "1.0.0",
"name" : "AdaptImmunizationAdministration",
"status" : "draft",
"date" : "2024-12-27T16:54:09+00:00",
"publisher" : "Oliver Egger",
"contact" : [
{
"name" : "ahdis ag",
"telecom" : [
{
"system" : "url",
"value" : "https://www.hl7.ch/"
}
]
}
],
"jurisdiction" : [
{
"coding" : [
{
"system" : "urn:iso:std:iso:3166",
"code" : "CHE"
}
]
}
],
"copyright" : "CC0-1.0",
"structure" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/Bundle",
"mode" : "source",
"alias" : "Bundle"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Bundle",
"mode" : "target",
"alias" : "BundleTgt"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Composition",
"mode" : "source",
"alias" : "Composition"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Composition",
"mode" : "target",
"alias" : "CompositionTgt"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Patient",
"mode" : "source",
"alias" : "Patient"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Patient",
"mode" : "target",
"alias" : "PatientTgt"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/PractitionerRole",
"mode" : "source",
"alias" : "PractitionerRole"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/PractitionerRole",
"mode" : "target",
"alias" : "PractitionerRoleTgt"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Practitioner",
"mode" : "source",
"alias" : "Practitioner"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Practitioner",
"mode" : "target",
"alias" : "PractitionerTgt"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Organization",
"mode" : "source",
"alias" : "Organization"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Organization",
"mode" : "target",
"alias" : "OrganizationTgt"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Immunization",
"mode" : "source",
"alias" : "Immunization"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Immunization",
"mode" : "target",
"alias" : "ImmunizationTgt"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Resource",
"mode" : "source",
"alias" : "Resource"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Resource",
"mode" : "target",
"alias" : "ResourceTgt"
}
],
"group" : [
{
"name" : "Bundle",
"typeMode" : "none",
"input" : [
{
"name" : "src",
"type" : "Bundle",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "BundleTgt",
"mode" : "target"
}
],
"rule" : [
{
"name" : "meta",
"source" : [
{
"context" : "src",
"element" : "meta"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "meta",
"variable" : "meta"
},
{
"context" : "meta",
"contextType" : "variable",
"element" : "profile",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://fhir.ch/ig/ch-vacd/StructureDefinition/ch-vacd-document-immunization-administration|5.0.0"
}
]
}
]
},
{
"name" : "id",
"source" : [
{
"context" : "src",
"element" : "id",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "id",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "identifier",
"source" : [
{
"context" : "src",
"element" : "identifier",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "identifier",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "type",
"source" : [
{
"context" : "src",
"element" : "type",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "type",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "timestamp",
"source" : [
{
"context" : "src",
"element" : "timestamp",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "timestamp",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "entry",
"source" : [
{
"context" : "src",
"element" : "entry",
"variable" : "src",
"condition" : "(fullUrl != 'https://www.e-health-suisse.ch/Patient/Patient-author')"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "entry",
"variable" : "tgt"
}
],
"dependent" : [
{
"name" : "Entry",
"variable" : [
"src",
"tgt"
]
}
]
}
]
},
{
"name" : "Resource",
"typeMode" : "none",
"input" : [
{
"name" : "src",
"type" : "Resource",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "ResourceTgt",
"mode" : "target"
}
],
"rule" : [
{
"name" : "id",
"source" : [
{
"context" : "src",
"element" : "id",
"variable" : "id"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "id",
"transform" : "copy",
"parameter" : [
{
"valueId" : "id"
}
]
}
]
}
]
},
{
"name" : "Entry",
"typeMode" : "none",
"input" : [
{
"name" : "src",
"mode" : "source"
},
{
"name" : "tgt",
"mode" : "target"
}
],
"rule" : [
{
"name" : "fullUrl",
"source" : [
{
"context" : "src",
"element" : "fullUrl",
"variable" : "fullUrl"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "fullUrl",
"transform" : "copy",
"parameter" : [
{
"valueId" : "fullUrl"
}
]
}
]
},
{
"name" : "Composition",
"source" : [
{
"context" : "src",
"type" : "Composition",
"element" : "resource",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "resource",
"variable" : "tgt",
"transform" : "create",
"parameter" : [
{
"valueString" : "Composition"
}
]
}
],
"dependent" : [
{
"name" : "Composition",
"variable" : [
"src",
"tgt"
]
}
]
},
{
"name" : "Patient",
"source" : [
{
"context" : "src",
"type" : "Patient",
"element" : "resource",
"variable" : "src",
"condition" : "(id != 'Patient-author')"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "resource",
"variable" : "tgt",
"transform" : "create",
"parameter" : [
{
"valueString" : "Patient"
}
]
}
],
"dependent" : [
{
"name" : "Patient",
"variable" : [
"src",
"tgt"
]
}
]
},
{
"name" : "PractitionerRole",
"source" : [
{
"context" : "src",
"type" : "PractitionerRole",
"element" : "resource",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "resource",
"variable" : "tgt",
"transform" : "create",
"parameter" : [
{
"valueString" : "PractitionerRole"
}
]
}
],
"dependent" : [
{
"name" : "PractitionerRole",
"variable" : [
"src",
"tgt"
]
}
]
},
{
"name" : "Practitioner",
"source" : [
{
"context" : "src",
"type" : "Practitioner",
"element" : "resource",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "resource",
"variable" : "tgt",
"transform" : "create",
"parameter" : [
{
"valueString" : "Practitioner"
}
]
}
],
"dependent" : [
{
"name" : "Practitioner",
"variable" : [
"src",
"tgt"
]
}
]
},
{
"name" : "Organization",
"source" : [
{
"context" : "src",
"type" : "Organization",
"element" : "resource",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "resource",
"variable" : "tgt",
"transform" : "create",
"parameter" : [
{
"valueString" : "Organization"
}
]
}
],
"dependent" : [
{
"name" : "Organization",
"variable" : [
"src",
"tgt"
]
}
]
},
{
"name" : "Immunization",
"source" : [
{
"context" : "src",
"type" : "Immunization",
"element" : "resource",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "resource",
"variable" : "tgt",
"transform" : "create",
"parameter" : [
{
"valueString" : "Immunization"
}
]
}
],
"dependent" : [
{
"name" : "Immunization",
"variable" : [
"src",
"tgt"
]
}
]
}
]
},
{
"name" : "Patient",
"extends" : "Resource",
"typeMode" : "types",
"input" : [
{
"name" : "src",
"type" : "Patient",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "PatientTgt",
"mode" : "target"
}
],
"rule" : [
{
"name" : "identifier",
"source" : [
{
"context" : "src",
"element" : "identifier",
"variable" : "src",
"condition" : "((system != 'urn:oid:2.16.756.5.30.1.127.3.10.3') or value.startsWith('761'))"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "identifier",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "identifier",
"source" : [
{
"context" : "src",
"element" : "identifier",
"variable" : "src",
"condition" : "((system = 'urn:oid:2.16.756.5.30.1.127.3.10.3') and (value.startsWith('761').not()))"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "identifier",
"variable" : "tgt"
},
{
"context" : "tgt",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "urn:oid:2.16.756.5.30.1.194.3.0.12.3.101"
}
]
},
{
"context" : "tgt",
"contextType" : "variable",
"element" : "value",
"transform" : "evaluate",
"parameter" : [
{
"valueString" : "%src.value"
}
]
}
]
},
{
"name" : "active",
"source" : [
{
"context" : "src",
"element" : "active",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "active",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "name",
"source" : [
{
"context" : "src",
"element" : "name",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "name",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "telecom",
"source" : [
{
"context" : "src",
"element" : "telecom",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "telecom",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "gender",
"source" : [
{
"context" : "src",
"element" : "gender",
"variable" : "src",
"condition" : "($this != 'unknown')"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "gender",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "birthDate",
"source" : [
{
"context" : "src",
"element" : "birthDate",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "birthDate",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
}
]
},
{
"name" : "Composition",
"extends" : "Resource",
"typeMode" : "types",
"input" : [
{
"name" : "src",
"type" : "Composition",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "CompositionTgt",
"mode" : "target"
}
],
"rule" : [
{
"name" : "language",
"source" : [
{
"context" : "src",
"element" : "language",
"variable" : "language"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "language",
"transform" : "copy",
"parameter" : [
{
"valueId" : "language"
}
]
}
]
},
{
"name" : "identifier",
"source" : [
{
"context" : "src",
"element" : "identifier",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "identifier",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "status",
"source" : [
{
"context" : "src",
"element" : "status",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "status",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "type",
"source" : [
{
"context" : "src",
"element" : "type",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "type",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "category",
"source" : [
{
"context" : "src",
"element" : "category",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "category",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "subject",
"source" : [
{
"context" : "src",
"element" : "subject",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "subject",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "date",
"source" : [
{
"context" : "src",
"element" : "date",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "date",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "author",
"source" : [
{
"context" : "src",
"element" : "author",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "author",
"variable" : "tgt"
}
],
"rule" : [
{
"name" : "reference",
"source" : [
{
"context" : "src",
"element" : "reference",
"variable" : "src",
"condition" : "($this = 'Patient/Patient-author')"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "reference",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Patient/Patient-0001"
}
]
}
]
},
{
"name" : "reference",
"source" : [
{
"context" : "src",
"element" : "reference",
"variable" : "src",
"condition" : "($this != 'Patient/Patient-author')"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "reference",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
}
]
},
{
"name" : "title",
"source" : [
{
"context" : "src",
"element" : "title",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "title",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "confidentiality",
"source" : [
{
"context" : "src",
"element" : "confidentiality",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "confidentiality",
"variable" : "tgt",
"transform" : "create",
"parameter" : [
{
"valueString" : "code"
}
]
}
],
"dependent" : [
{
"name" : "CodeConf",
"variable" : [
"src",
"tgt"
]
}
]
},
{
"name" : "section",
"source" : [
{
"context" : "src",
"element" : "section",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "section",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "category",
"source" : [
{
"context" : "src",
"condition" : "(category.empty())"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "category",
"transform" : "cc",
"parameter" : [
{
"valueString" : "urn:oid:2.16.756.5.30.1.127.3.10.10"
},
{
"valueString" : "urn:che:epr:ch-vacd:immunization-administration:2022"
}
]
}
]
}
]
},
{
"name" : "CodeConf",
"typeMode" : "none",
"input" : [
{
"name" : "src",
"type" : "code",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "code",
"mode" : "target"
}
],
"rule" : [
{
"name" : "organization",
"source" : [
{
"context" : "src",
"element" : "extension",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "extension",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "practitioner",
"source" : [
{
"context" : "src",
"element" : "value",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
}
]
},
{
"name" : "PractitionerRole",
"extends" : "Resource",
"typeMode" : "types",
"input" : [
{
"name" : "src",
"type" : "PractitionerRole",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "PractitionerRoleTgt",
"mode" : "target"
}
],
"rule" : [
{
"name" : "organization",
"source" : [
{
"context" : "src",
"element" : "organization",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "organization",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "practitioner",
"source" : [
{
"context" : "src",
"element" : "practitioner",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "practitioner",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
}
]
},
{
"name" : "Practitioner",
"extends" : "Resource",
"typeMode" : "types",
"input" : [
{
"name" : "src",
"type" : "Practitioner",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "PractitionerTgt",
"mode" : "target"
}
],
"rule" : [
{
"name" : "identifier",
"source" : [
{
"context" : "src",
"element" : "identifier",
"variable" : "src",
"condition" : "(value.value != '7600000000000')"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "identifier",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "name",
"source" : [
{
"context" : "src",
"element" : "name",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "name",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "telecom",
"source" : [
{
"context" : "src",
"element" : "telecom",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "telecom",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
}
]
},
{
"name" : "Organization",
"extends" : "Resource",
"typeMode" : "types",
"input" : [
{
"name" : "src",
"type" : "Organization",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "OrganizationTgt",
"mode" : "target"
}
],
"rule" : [
{
"name" : "name",
"source" : [
{
"context" : "src",
"element" : "name",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "name",
"transform" : "evaluate",
"parameter" : [
{
"valueString" : "%src.trim()"
}
]
}
]
}
]
},
{
"name" : "ImmunizationCodeableConcept",
"typeMode" : "none",
"input" : [
{
"name" : "src",
"type" : "CodeableConcept",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "CodeableConcept",
"mode" : "target"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "src",
"element" : "coding",
"variable" : "coding",
"condition" : "(system != 'http://fhir.ch/ig/ch-vacd/CodeSystem/ch-vacd-myvaccines-cs')"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "coding",
"transform" : "copy",
"parameter" : [
{
"valueId" : "coding"
}
]
}
]
},
{
"name" : "coding",
"source" : [
{
"context" : "src",
"element" : "coding",
"variable" : "coding",
"condition" : "((system = 'http://fhir.ch/ig/ch-vacd/CodeSystem/ch-vacd-myvaccines-cs') and 'http://fhir.ch/ig/ch-vacd/CodeSystem/ch-vacd-myvaccines-cs'.resolve().concept.where(code = %coding.code).exists())"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "coding",
"transform" : "copy",
"parameter" : [
{
"valueId" : "coding"
}
]
}
]
},
{
"name" : "fixwrongcodesystem",
"source" : [
{
"context" : "src",
"element" : "coding",
"variable" : "coding",
"condition" : "((system = 'http://fhir.ch/ig/ch-vacd/CodeSystem/ch-vacd-myvaccines-cs') and 'http://fhir.ch/ig/ch-vacd/CodeSystem/ch-vacd-swissmedic-cs'.resolve().concept.where(code = %coding.code).exists())"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "coding",
"variable" : "tgtcoding",
"transform" : "create",
"parameter" : [
{
"valueString" : "Coding"
}
]
},
{
"context" : "tgtcoding",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://fhir.ch/ig/ch-vacd/CodeSystem/ch-vacd-swissmedic-cs"
}
]
},
{
"context" : "tgtcoding",
"contextType" : "variable",
"element" : "code",
"transform" : "evaluate",
"parameter" : [
{
"valueString" : "%coding.code"
}
]
},
{
"context" : "tgtcoding",
"contextType" : "variable",
"element" : "display",
"transform" : "evaluate",
"parameter" : [
{
"valueString" : "%coding.display"
}
]
}
]
}
]
},
{
"name" : "Immunization",
"extends" : "Resource",
"typeMode" : "types",
"input" : [
{
"name" : "src",
"type" : "Immunization",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "ImmunizationTgt",
"mode" : "target"
}
],
"rule" : [
{
"name" : "identifier",
"source" : [
{
"context" : "src",
"element" : "identifier",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "identifier",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "status",
"source" : [
{
"context" : "src",
"element" : "status",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "status",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "protocolApplied",
"source" : [
{
"context" : "src",
"element" : "vaccineCode",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "vaccineCode",
"variable" : "tgt",
"transform" : "create",
"parameter" : [
{
"valueString" : "CodeableConcept"
}
]
}
],
"dependent" : [
{
"name" : "ImmunizationCodeableConcept",
"variable" : [
"src",
"tgt"
]
}
]
},
{
"name" : "patient",
"source" : [
{
"context" : "src",
"element" : "patient",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "patient",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "occurrenceDateTime",
"source" : [
{
"context" : "src",
"element" : "occurrence",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "occurrence",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "lotNumber",
"source" : [
{
"context" : "src",
"element" : "lotNumber",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "lotNumber",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "performer",
"source" : [
{
"context" : "src",
"element" : "performer",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "performer",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "protocolApplied",
"source" : [
{
"context" : "src",
"element" : "protocolApplied",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "protocolApplied",
"variable" : "tgt"
}
],
"dependent" : [
{
"name" : "ProtocolApplied",
"variable" : [
"src",
"tgt"
]
}
]
}
]
},
{
"name" : "ProtocolApplied",
"typeMode" : "none",
"input" : [
{
"name" : "src",
"mode" : "source"
},
{
"name" : "tgt",
"mode" : "target"
}
],
"rule" : [
{
"name" : "targetDisease",
"source" : [
{
"context" : "src",
"element" : "targetDisease",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "targetDisease",
"variable" : "tgt",
"transform" : "create",
"parameter" : [
{
"valueString" : "CodeableConcept"
}
]
}
],
"dependent" : [
{
"name" : "TargetDisease",
"variable" : [
"src",
"tgt"
]
}
]
},
{
"name" : "doseNumberPositiveInt",
"source" : [
{
"context" : "src",
"element" : "doseNumber",
"variable" : "src"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "doseNumber",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
}
]
},
{
"name" : "TargetDisease",
"typeMode" : "none",
"input" : [
{
"name" : "src",
"type" : "CodeableConcept",
"mode" : "source"
},
{
"name" : "tgt",
"type" : "CodeableConcept",
"mode" : "target"
}
],
"rule" : [
{
"name" : "coding",
"source" : [
{
"context" : "src",
"element" : "coding",
"variable" : "src",
"condition" : "(system != 'http://fhir.ch/ig/ch-vacd/ConceptMap-ch-vacd-vaccines-targetdiseases-cm')"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "coding",
"transform" : "copy",
"parameter" : [
{
"valueId" : "src"
}
]
}
]
},
{
"name" : "coding",
"source" : [
{
"context" : "src",
"element" : "coding",
"variable" : "src",
"condition" : "(system = 'http://fhir.ch/ig/ch-vacd/ConceptMap-ch-vacd-vaccines-targetdiseases-cm')"
}
],
"target" : [
{
"context" : "tgt",
"contextType" : "variable",
"element" : "coding",
"variable" : "coding"
},
{
"context" : "coding",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://snomed.info/sct"
}
]
},
{
"context" : "coding",
"contextType" : "variable",
"element" : "code",
"transform" : "evaluate",
"parameter" : [
{
"valueString" : "%src.code"
}
]
},
{
"context" : "coding",
"contextType" : "variable",
"element" : "display",
"transform" : "evaluate",
"parameter" : [
{
"valueString" : "%src.display"
}
]
}
]
}
]
}
]
}
XIG built as of ??metadata-date??. Found ??metadata-resources?? resources in ??metadata-packages?? packages.